/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sync.merge;

import java.io.InputStream;
import java.io.OutputStream;
import sync.exceptions.MergeException;

/**
 *
 * @author zalem1
 */
public interface IMergeProvider {
    public boolean isChanged(String localPath) throws MergeException;
    
    public InputStream getInputStream(String localPath, final int length) throws MergeException;
    public OutputStream getOutputStream(String localPath) throws MergeException;

    public MediaContent getMediaContent(String localPath) throws MergeException ;
    public String getMediaHash(String localPath) throws MergeException;
    
    public boolean exists(String localPath) throws MergeException;
    public boolean isAlbum(String localPath);
    public boolean isPhoto(String localPath);
    public boolean isVideo(String localPath);
    public boolean isMedia(String localPath);
    public String getFilename(String localPath);
    public long getSize(String localPath);
    public boolean isNew(String localPath);

    public void updateMetadata(String _localPath) throws MergeException;
    public void changeLocalPath(String localPath, String newLocalPath);

    public void delete();
}
